GL简介
Unity的GL类是底层图形类。
使用
GL类提供了五种最基本的图像绘制种类,即线、三角形和四边形,绘制时以GL.Begin
开始,以GL.End
结束,中间通过GL.Color
来更改颜色,通过GL.Vertex
或者GL.Vertex3
来添加顶点,如下所示。如果需要进行矩阵变换,则在GL.Begin
之前进行矩阵变换。
GL类的方法一般在MonoBehaviour的OnRenderObject
方法中调用。
设置材质
调用mat.SetPass(int)
激活指定的Pass。参数从0
到mat.passCount
。
坐标变换
默认的绘制坐标系为世界坐标系。如果要在某个模型坐标系绘制,可以使用GL.MultMatrix()
方法。
映射到屏幕空间的矩阵:GL.LoadPixelMatrix()
映射到正交空间的矩阵:GL.LoadOrtho()
视口分离:如果要在局部视口绘制,可以调用GL.Viewport()方法
。
GL.PushMatrix();
GL.LoadPixelMatrix();
GL.Viewport(new Rect(0, 0, Screen.width / 2, Screen.height / 2));
DrawXXX();
GL.PopMatrix();
示例
GL.PushMatrix();
lineMat.SetPass(0);
GL.MultMatrix(this.transform.localToWorldMatrix)
GL.Begin(GL.LINES);
GL.Color(Color.green);
GL.Vertex();
GL.Vertex();
GL.Vertex();
GL.Vertex();
GL.End()
GL.PopMatrix();
参考文章
https://www.cnblogs.com/llstart-new0201/p/12315708.html